#pragma once
#include <iostream>

#include "a_self.h"
#include "weak_ptr.h"

using namespace utility;

class A;

class B {
public:
    B() = default;
    ~B() { std::cout << "B is deleted" << std::endl; }
    WeakPtr<A> _a;
};